home *** CD-ROM | disk | FTP | other *** search
- /*
- File: PowerPCCodeBrowser.h
-
- Contains: PowerPC Code Browser for the Fragmalyzer
-
- Written by: Dan Wright
-
- Copyright: © 1999-2000 Dan Wright, All rights reserved
-
- Change History (most recent first):
-
- <3> 5/15/00 DW updates for 1.5
- <2> 4/16/99 DW Version 1.0 final
- <1> 4/2/99 DW first version
- */
-
- #ifndef __POWERPCCODEBROWSER__
- #define __POWERPCCODEBROWSER__
-
- #include "FrazAPI.h"
-
-
- #if PRAGMA_ONCE
- #pragma once
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
-
-
- #ifdef __MWERKS__
- #pragma push
- #pragma reverse_bitfields off
- #endif
-
-
- enum {
- kSigPluginCodeBrowser = FOUR_CHAR_CODE('ppcc'),
-
- cmd_CodeBrowse = 1,
- cmd_CodeViewSymbol,
- cmd_CodeAddMarker,
- cmd_CodeGoBack,
-
- /* commands new in version 1.5 */
- cmd_CodeSwitchToDataBrowser,
- cmd_CodeFindReferences,
-
- /* submenu commands */
- cmd_CodeGoMark = 10,
- cmd_CodeSetMark = 20,
- cmd_CodeHistory = 30,
-
- /* submenu commands new in version 1.5 */
- cmd_CodeReferences = 100
- };
-
- typedef struct CodeBlockInfo
- {
- UInt32 offsetIntoCode;
- UInt32 offsetIntoSym;
- UInt32 fGlue : 1;
- UInt32 fExported : 1;
- UInt32 fEntry : 1; // init/main/term
- UInt32 fData : 1;
- UInt32 fAnon : 1;
- UInt32 reserved : 3;
- UInt32 cbFn : 24; // size of function
- } CodeBlockInfo;
-
-
- Boolean CodeBrowserOpenFragment(BrowserRef browser, FragmentRef fragment);
- Boolean CodeBrowserIsLoaded(void);
-
- typedef WindowPtr (*CodeFindBrowserProcPtr)(FragmentRef);
- typedef Boolean (*CodeGotoSymbolProcPtr)(FragmentRef, ConstStr255Param);
- typedef Boolean (*CodeGotoOffsetProcPtr)(FragmentRef, UInt32);
- typedef Boolean (*CodeGetOffsetInfoProcPtr)(FragmentRef, UInt32, StringPtr, CodeBlockInfo *);
-
- WindowPtr CodeFindBrowser(FragmentRef fragment);
- Boolean CodeGotoSymbol(FragmentRef fragment, ConstStr255Param stSymbol);
- Boolean CodeGotoOffset(FragmentRef fragment, UInt32 offset);
- Boolean CodeGetOffsetInfo(FragmentRef fragment, UInt32 offset, StringPtr pstName, CodeBlockInfo *);
-
- /* version 1.5 */
- typedef WindowPtr (*CodeFindLocatorBrowserProcPtr)(ConstFrazLocatorPtr);
- typedef Boolean (*CodeOpenLocatorProcPtr)(ConstFrazLocatorPtr, BinFormat, ConstStringPtr);
- typedef Boolean (*CodeGotoLocatorSymbolProcPtr)(ConstFrazLocatorPtr, ConstStr255Param);
- typedef Boolean (*CodeGotoLocatorOffsetProcPtr)(ConstFrazLocatorPtr, UInt32);
- typedef Boolean (*CodeGetLocatorOffsetInfoProcPtr)(ConstFrazLocatorPtr, UInt32, StringPtr, CodeBlockInfo *);
-
- WindowPtr CodeFindLocatorBrowser(ConstFrazLocatorPtr);
- Boolean CodeOpenLocator(ConstFrazLocatorPtr, BinFormat, ConstStringPtr stName);
- Boolean CodeGotoLocatorSymbol(ConstFrazLocatorPtr, ConstStr255Param);
- Boolean CodeGotoLocatorOffset(ConstFrazLocatorPtr, UInt32 offset);
- Boolean CodeGetLocatorOffsetInfo(ConstFrazLocatorPtr, UInt32 offset, StringPtr pstName, CodeBlockInfo *);
-
- #ifdef __MWERKS__
- #pragma pop
- #endif
-
-
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __POWERPCCODEBROWSER__ */
-